import { tyYinping } from "./统一饮品.js";
import { tyFbm } from "./统一方便面.js";
import { qtFbm } from "./其他方便面.js";
import { eryuanhuo } from "./2元货.js";
import { eryuanyslt } from "./2元以上辣条.js";
import { wumaohehuo } from "./0.5盒货.js";
import { wumaodz } from "./0.5袋装.js";
import { wumaotz } from "./0.5桶装.js";
import { yimaohuo } from "./0.1元货.js";
import { yiyuanhehuo } from "./1元盒货.js";
import { yiyuandz } from "./1元袋装.js";
import { qtYinping } from "./其他饮品.js";
import { xxsp } from "./休闲食品.js";
import { roushi } from "./肉食.js";
import { huotui } from "./火腿.js";
import { mianbao } from "./面包.js";
import { qingshe } from "./巧克力&糖.js";
import { guabang } from "./挂板.js";
import { wangju } from "./玩具.js";
import { guazi } from "./瓜子.js";
import { cp } from "./冲泡.js";
import { xf } from "./新品.js";

/**
 * 字段属性
 * 1.配置字段（以下标*为必填字段）
 * 	name: 食品名, 
 *	thumbnail: 食品图片url,
  	gg: 食品规格（可在小分类添加）
    price: 食品价格（可在小分类添加）
		tagList：食品快选tag，tagList表示1 2 3 5，tagList1表示5 10 15 20（可在小分类添加）
		isAllName: 食品导出名称是否为name，默认为false取name，如果为true取小分类name+name（可在小分类添加）

		以下只有选规格时才生效
		btnType: 选规格时为"btn"
		children: 食品口味 [{ name: "混装配" }],
		placeholder: 食品备注提示文字

*/

export function getCategoryList() {
  const categoryList = [
    xf,
    xxsp,
    roushi,
    huotui,
    qtFbm,
    qtYinping,
    mianbao,
    wangju,
    eryuanhuo,
    eryuanyslt,
    yiyuanhehuo,
    yiyuandz,
    wumaohehuo,
    wumaodz,
    wumaotz,
    yimaohuo,
    guazi,
    cp,
    // tyFbm,
    // tyYinping,
    qingshe,
    guabang,
  ];

  // 属性根据层次原则，由深到浅的获取真实属性
  function getProps(val1, val2, val3) {
    if (val1 != undefined) return val1;
    if (val2 != undefined) return val2;
    if (val3 != undefined) return val3;
    return "";
  }
  // category：大分类，如统一饮品
  // item：小分类，如4元1L饮料
  // subitem：项目，如统一红茶
  categoryList.forEach((category, activeKey) => {
    category.children.forEach((item, index) => {
      // console.log(item, 'ii');
      item.children.forEach((subitem, subindex) => {
        // 全名，默认取本身名，如果为true否则取小分类名+本身名
        subitem.allName = getProps(subitem.isAllName, item.isAllName)
          ? item.name + subitem.name
          : subitem.name;
        subitem.num = 0; // 个数
        subitem.price = subitem.price || item.defaultPrice || "100"; // 单价，先取本身单价，再取品类单价，再取默认单价
        subitem.unit = getProps(subitem.unit, item.defaultUnit); // 单位：'件'，'包'
        subitem.gg = getProps(subitem.gg, item.gg); // 规格
        subitem.imgTag = getProps(subitem.imgTag, item.imgTag, category.imgTag); // 图片标签

        subitem.activeKey = activeKey; // 左侧选中的tab
        subitem.index = index; // 当前tab下的第几个小分类
        subitem.subindex = subindex; // 当前小分类的第几个

        // 以下属性只有选规格时，会用到
        subitem.btnType = subitem.btnType || "group"; // 按钮类型，默认按钮组
        if (subitem.children) {
          if (subitem.children[0].name !== "混装配") {
            subitem.children.unshift({
              name: "混装配",
            });
          }
          // console.log(subitem.children);
          subitem.children.forEach((subchild, subindex) => {
            subchild.num = 0; // 个数
          }); //
        }
        subitem.tagList = subitem.tagList || item.tagList || []; // 快选标签列表
        subitem.extraName = ""; // 口味补充名字
        subitem.remark = ""; // 选规格备注
        subitem.unitlist = subitem.unitlist || ""; // 暂时没用到：可切换的单位列表
      });
    });
  });
  return categoryList;
}

// export function getFlatCategoryList() {
//   const categoryList = getCategoryList()
//   let flatList = []
//   categoryList.forEach(category => {
//     category.children.forEach(item => {
//       item.children.forEach(subitem => {
//         flatList.push(subitem)
//       })
//     })
//   })
//   console.log(categoryList, flatList);
//   return flatList
// }
// getFlatCategoryList()
